AWS 環境の高度なログ分析を実現 – Sumo Logic の Global Intelligence を試してみた
セキュリティ分析の上で、基準となるベースラインを持つことで、ログに出力されたイベントに注目し、インシデントを未然に防いだり、システムの異常を引き起こす根本原因を調査することに活用することができます。
ベースラインには様々なものがあり、例えば、各国の政府が発行するセキュリティガイドラインや、自分たちの平常時のデータ統計値、他の企業のデータ統計値などをベースラインとして比較対象することが考えれます。
Sumo LogicのGlobal Intelligenceでは、Sumo Logicのマルチテナントプラットフォームに取り込まれた全てのアカウントの統計値を機械学習によってベンチマーク化し、リアルタイムに収集した自社のログデータと比較するためのAppを利用することができます。
また、Global Intelligenceはセキュリティのインサイトを得るための機能(Security)とシステムパフォーマンスを高めるためのインサイトを得る機能(Operations)に分かれていてAppで提供されます。
本記事では後述のGlobal Intelligence(Security)機能の「Global Intelligence for AWS CloudTrail SecOps」Appの使い方についてご紹介します。
対象のApp
執筆時点ではGlobal Intelligence(Security)には、AWS CloudTrail と Amazon GuardDuty のログを対象としたAppがあります。
利用可能なライセンス
Sumo Logicはライセンス形態ごとに使える機能が異なり、Global Intelligence(Security) は以下のライセンスで利用可能となっています。
- Trial, Enterprise Suite, Enterprise Security
Sumo Logic ライセンス参考:
Global Intelligence for AWS CloudTrail SecOps で分析可能なAWSリソース
分析可能なAWSリソースは以下となっています。
- Amazon EC2
- Amazon S3
- Amazon RDS
- Amazon Redshift
- AWS Lambda
- AWS IAM
- AWS CloudTrail
「Global Intelligence for AWS CloudTrail SecOps」Appのインストール
ログを取り込みAppをインストールします。
下記のブログおよび公式ドキュメントのようにログの取り込みおよびAppのインストールは簡単に行えます。
この App についてはインストール後、何もせずに最大24時間程度待つ必要があります。しばらくするとこのようにデータが可視化されます。
それでは次以降、このAppで何を分析できるのか、どのように使うのかご紹介していきます。
GI CloudTrail - 01 Attack Surface Benchmark
自身のAWS環境において攻撃の対象となるリソースの範囲が大きいかあるいは小さいかを判断するのに利用します。
「Unique AWS Resource Types: My Company v. Peers (VARIETY)」では、アカウント毎の利用しているAWSのサービスの総数が表示されます。
グローバルなデータ統計として Sumo Logic 内で取り込まれている他の顧客のデータを機械分析し、最も多く利用しているサービスの総数、中央値、最も少なく利用しているサービスの総数が表示されます。
「CloudTrail Events: New, Delete, Update (VELOCITY)」では、アカウント毎のリソースに対する変更イベント(CreateやDelete、Modifyなど)の総数が表示されます。
こちらもグローバルなデータ統計が表示されます。
グローバルなデータ統計との差分が大きい場合、通常では考えられない変更が発生していて、詳細を深掘り(ドリルダウン)したくなる注目すべきインサイトかもしれません。
「Resource Counts By Type: My Company v. Peers (VOLUME)」では、アカウント毎のEC2, S3, KMS, IAM, Lambda, Redshift, RDSで利用されているサービスの数(EC2の場合インスタンス数、Redshiftの場合クラスター数、S3の場合バケット数など…)が表示されます。
こちらもグローバルなデータ統計値が表示されます。
自アカウント以外のデータとの差分が大きい場合、使われていない無駄なリソースが残っていないかなどに注目することができます。
「Top 10 CloudTrail Events: My Company v. Peers」では、アカウント毎で注目すべきイベントが発生していないか、そのTOP10を抽出します。さらに発生していた場合にそのイベントに関してグローバルなデータ統計を表示します。
注目すべきイベントについては主に以下を対象としています。
CloudTrail
- ログファイルの配信を指定する設定を更新する許可を付与
- グローバルサービスイベントの記録の無効化
- ログファイルの整合性検証を無効化
- 新しいKMSキーによるログの暗号化
- 証跡のログ記録をオフにするイベント (StopLogging)
EC2
- インスタンスのユーザーデータの追加または変更
- インスタンスの削除保護の有効化
- ルートテーブルの一覧表示イベント (DescribeRouteTables)
- VPCセキュリティグループにパブリックアクセスのインバウンドルール追加イベント (AuthorizeSecurityGroupIngress)
- イメージの一覧表示イベント (DescribeInstances)
- インスタンスの一覧表示イベント (DescribeInstances)
- セキュリティグループの一覧表示イベント (DescribeSecurityGroups)
- トラフィックミラーの作成に関するイベント
IAM
- MFA未使用のコンソールログインイベント (ConsoleLogin)
- IAMユーザーへのIAMポリシーアタッチイベント (AttachUserPolicy)
- IAMユーザーへのインラインポリシー追加更新イベント (PutUserPolicy)
- IAMロールへのIAMポリシーアタッチイベント (AttachRolePolicy)
- IAMロールへのインラインポリシー追加更新イベント (PutRolePolicy)
- IAMグループへのIAMポリシーアタッチイベント (AttachGroupPolicy)
- IAMグループへのインラインポリシー追加更新イベント (PutGroupPolicy)
- IAMグループへのユーザーの追加イベント (AddUserToGroup)
- IAMユーザーのアクセスキー作成イベント (CreateAccessKey)
- IAMユーザーのパスワード作成イベント (CreateLoginProfile)
- IAMユーザーのパスワードリセット権限の付与 (UpdateLoginProfile)
- IAMユーザー、グループ、ロールのデフォルトポリシーの指定 (SetDefaultPolicyVersion)
- IAMポリシーの作成イベント (CreatePolicy)
- IAMポリシーのデフォルトバーションの作成イベント (CreatePolicyVersion)
- 誤ったユーザー名によるサインインイベント (HIDDEN_DUE_TO_SECURITY_REASONS)
- Assume Roleの更新イベント (UpdateAssumeRolePolicy)
- 5回以上のAccessDeniedイベント
Lambda
- 外部からのLambda関数の作成、Lambda関数URLの作成イベント
- 外部からのLambda関数の呼び出しに関するイベント
- 外部からのLambda関数間のマッピングに関するイベント
- 外部からのLambda関数の更新に関するイベント
RDS
- DBインスタンスの管理者パスワード変更イベント
- DBスナップショットからの復元イベント
- DBセキュリティグループイングレスイベント
Redshift
- データベース暗号化の無効化イベント
- SSL接続の無効化やロギングの停止イベント
S3
- AccessDeniedになったイベント
- Put、Create、Delete、Updateイベント
- バケットのバージョニングの停止やMFA削除などのイベント
- バケットACLのパブリックアクセスに関するイベント
GI CloudTrail - 02 Tactics and Techniques: My Company v. Peers
先程の注目すべきイベントをMITRE ATT&CKの戦術ごとに分類し、各イベントの統計を分析するためのダッシュボードになります。
戦術は、Discovery、Initial Access、Defense Evasion、Execution、Credential Access、Privilege Escalation、Lateral Movement、Exfiltration、Persistenceに分けられ、攻撃者の目標到達に向けての攻撃の深度として表現されています。
詳細についてはMITREのサイトで確認することができます。
各イベントとのマッピングは以下のようになります。
Initial Access(ネットワークに侵入しようとしている)
- EC2 - VPCセキュリティグループにパブリックアクセスのインバウンドルール追加イベント
- S3 - バケットACLのパブリックアクセスに関するイベント
- RDS - DBセキュリティグループイングレスイベント
Execution(悪意のあるコードを実行しようとしている)
- IAM - 5回以上のAccessDeniedイベント
Persistence(不正アクセスする環境を確保しようとしている)
- Lambda - 外部からのLambda関数の作成、Lambda関数URLの作成イベント
- Lambda - 外部からのLambda関数の呼び出しに関するイベント
- Lambda - 外部からのLambda関数間のマッピングに関するイベント
- Lambda - 外部からのLambda関数の更新に関するイベント
Privilege Escalation(より高いレベルの権限を取得しようとしている)
- IAM - IAMポリシーの作成・更新イベント
- IAM - IAMユーザーへのIAMポリシーのアタッチ・追加更新イベント
- IAM - IAMグループへのIAMポリシーのアタッチ・追加更新イベント
- IAM - IAMロールへのIAMポリシーのアタッチ・追加更新イベント
- IAM - IAMグループへのユーザー追加更新イベント
- IAM - Assume Roleの更新イベント
Defense Evasion(攻撃者が検知されないようにしている)
- EC2 - インスタンスの削除保護の有効化
- S3 - サーバーアクセスログの停止
- S3 - バケットのバージョニングの停止やMFA削除などのイベント
- CloudTrail - 証跡のログ記録をオフにするイベント
- CloudTrail - グローバルサービスイベントの記録の無効化
- CloudTrail - ログファイルの整合性検証を無効化
- CloudTrail - 新しいKMSキーによるログの暗号化
- Redshift - SSL接続の無効化やロギングの停止イベント
Credential Access(アカウントやパスワードを盗もうとしている)
- EC2 - インスタンスのユーザーデータの追加または変更
- IAM - コンソールログインイベント
- IAM - MFA未使用のコンソールログインイベント
- IAM - 誤ったユーザー名によるサインインイベント
- IAM - IAMユーザーのアクセスキー作成イベント
- IAM - IAMユーザーのパスワード作成イベント
- IAM - IAMユーザーのパスワードリセット権限の付与
- RDS - DBインスタンスの管理者パスワード変更イベント
Discovery(重要リソースへの探索を行おうとしている)
- EC2 - トラフィックミラーリングに関するイベント
- EC2 - インスタンスの一覧表示イベント
- EC2 - セキュリティグループの一覧表示イベント
- EC2 - AMIの一覧表示イベント
- S3 - バケット設定の確認に関するイベント
- S3 - データのPut、Create、Delete、Updateイベント
- S3 - バケットの一覧表示イベント
Lateral Movement(アクセス先の環境を移動しようとしている)
- EC2 - ルートテーブルの一覧表示イベント
今回のデータではイベントが発生していませんでした。
Exfiltration(データを盗もうとしている)
- S3 - AccessDeniedになったイベント
- RDS - DBスナップショットからの復元イベント
- Redshift - データベース暗号化の無効化イベント
- Redshift - SSL接続の無効化イベント
※全てのイベントでグローバルな統計値を大幅に上回っていますが、サンプルデータのためです。
GI CloudTrail - 04 Action Plan
注目すべきイベントごとに詳細を確認したり修復するための推奨内容を確認することができます。
ダッシュボードのフィルタには対象としたいアカウントで絞り込むことができます。
また、RegionCodeにはデプロイしている Sumo Logic のプラットフォームのリージョンを入力します。今回の環境は Sumo Logic のデモ環境を利用しているため、「us1」を指定していますが、日本の顧客の場合は通常「jp」になりますので、「jp」を選択してください。
また、スクロールダウンしたところでは、各リソースに分類されたイベント詳細が確認できます。
EventCountにリンクが生成されているので、リンクをクリックすると詳細検索画面が開き、個々の生イベントまでドリルダウンして詳細を調べていくことが可能です。
まとめ
いかがでしたでしょうか。
Global Intelligence(Security)機能の App を使うとグローバルな統計値によるベースライン分析が可能になるだけでなく、セキュリティ観点で AWS のどのイベントに注目するべきか Sumo Logic がインテリジェンスを提供してくれます。
SIEMツールの導入によってログの統合管理は実現できたが、ただのログストレージツールになっていたりしませんでしょうか。
ぜひ Sumo Logic を活用して、セキュリティのための高度な分析を実現してみてください。